package com.tes.util;

import java.util.List;

import com.tes.VO.PriorizacionVO;
import com.tes.util.Constantes;

public class ComportamientoMetodo{

	private static ComportamientoMetodo instancia = null;
	
	public static ComportamientoMetodo getInstance()
	{
		if(instancia==null)
		{
			instancia= new ComportamientoMetodo();
		}
		return instancia;
	}

	private ComportamientoMetodo()
	{
		
	}

    public List<PriorizacionVO> reemplazarCeros(List<PriorizacionVO> priorizacion)
    {
    	int cantidadCeros= this.contarCeros(priorizacion);
    	
    	if(cantidadCeros>0)
    	{
    		float sumaValores = this.sumarValores(priorizacion);
    		float cerosYDelta = cantidadCeros * Constantes.VALOR_REEMPLAZO_0_100P;
    		for(int i=0;i<priorizacion.size();i++)
    		{
    			if(priorizacion.get(i).getValor()!=0)
    			{
    				float valorNuevo = (1-(cerosYDelta)/sumaValores)*priorizacion.get(i).getValor();
        			priorizacion.get(i).setValor(valorNuevo);
    			}
    			else
    			{
    				priorizacion.get(i).setValor(Constantes.VALOR_REEMPLAZO_0_100P);
    			}
    			
        	}
    	}
    	
    	return priorizacion;
    }

	private float sumarValores(List<PriorizacionVO> priorizacion)
	{
		float sum=0;
		for(int i=0;i<priorizacion.size();i++)
		{
			sum+=priorizacion.get(i).getValor();	
    	}
		return sum;
	}

	private int contarCeros(List<PriorizacionVO> priorizacion)
	{
		int sum=0;
		for(int i=0;i<priorizacion.size();i++)
		{
			if(priorizacion.get(i).getValor()== 0)
			{
    			sum++;
    		}
    	}
		return sum;
	}

}
